package red;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;

// Permite separar mensajes. 
public class Enmarcador {
	
	private DataInputStream in;
	private DataOutputStream out;
	// (Framing por longitud de datos), aka: Inserto segundo la long del mensaje 
	//   que se convierte a 4 bytes

	public Enmarcador(DataInputStream in, DataOutputStream out) {
		this.in  = in;
		this.out = out;
	}
	
	public void enmarcar(byte[] msj) throws IOException{
		out.writeInt(msj.length);
		out.write(msj);
		out.flush();
	}

	public byte[] desenmarcar() throws IOException{
		int len;
		try {
			len = in.readInt();			
		} catch(EOFException e){
			return null;
		}
		

		byte[] buf = new byte[len];
		in.readFully(buf);
		return buf;
	}
}
